home *** CD-ROM | disk | FTP | other *** search
- #ifndef _SWF_H_
- #define _SWF_H_
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <setjmp.h>
- #include <assert.h>
- #include <limits.h>
-
- #ifdef DUMP
- #include "bitstream.h"
- #endif
-
- #include "flash.h"
-
- extern int debug;
-
- //#define DEBUG
-
- #ifdef DEBUG
- #define TRACE(fmt,args...) printf(fmt,args...)
- #else
- #define TRACE(fmt,args...)
- #endif
-
- // Global Types
- typedef unsigned long U32, *P_U32, **PP_U32;
- typedef signed long S32, *P_S32, **PP_S32;
- typedef unsigned short U16, *P_U16, **PP_U16;
- typedef signed short S16, *P_S16, **PP_S16;
- typedef unsigned char U8, *P_U8, **PP_U8;
- typedef signed char S8, *P_S8, **PP_S8;
- typedef signed long SFIXED, *P_SFIXED;
- typedef signed long SCOORD, *P_SCOORD;
- #ifndef AMIGA
- typedef unsigned long BOOL;
- #else
- #include <exec/types.h>
- #endif
-
- #define ZOOM(v,f) ((v)/(f))
-
- #include "matrix.h"
- #include "cxform.h"
- #include "rect.h"
-
- #ifndef AMIGA
- #include <sys/time.h>
- #else
- #ifdef __PPC__
- #include <sys/time.h>
- #else
- #include <devices/timer.h>
- #endif // __PPC__
- #endif
- #define ST struct timeval t1,t2;
- #define START gettimeofday(&t1,0)
- #define STOP(msg) gettimeofday(&t2,0); printf("%s Delta = %d ms\n", msg, (t2.tv_sec-t1.tv_sec)*1000+(t2.tv_usec-t1.tv_usec)/1000); fflush(stdout);
-
-
- // Start Sound Flags
- enum {
- soundHasInPoint = 0x01,
- soundHasOutPoint = 0x02,
- soundHasLoops = 0x04,
- soundHasEnvelope = 0x08
-
- // the upper 4 bits are reserved for synchronization flags
- };
-
- // Flags for Sound Format
- enum SounfFlags {
- soundIsStereo = 0x01,
- soundIs16bit = 0x02,
- soundIsADPCMCompressed = 0x10
- };
-
- // Flags for defining Button States
- enum ButtonState {
- stateHitTest = 0x08,
- stateDown = 0x04,
- stateOver = 0x02,
- stateUp = 0x01
- };
-
- // Actions
- enum Action {
- // Internal actions
- ActionRefresh = 0x00,
- ActionPlaySound = 0x01,
- // Normal actions
- ActionGotoFrame = 0x81,
- ActionGetURL = 0x83,
- ActionNextFrame = 0x04,
- ActionPrevFrame = 0x05,
- ActionPlay = 0x06,
- ActionStop = 0x07,
- ActionToggleQuality = 0x08,
- ActionStopSounds = 0x09,
- ActionWaitForFrame = 0x8a,
- ActionSetTarget = 0x8b,
- ActionGoToLabel = 0x8c
- };
-
- class Sound;
-
- struct ActionRecord {
- Action action;
-
- // GotoFrame & WaitForFrame
- long frameIndex;
-
- // GetURL
- char *url;
- char *target;
-
- // GotoLabel
- char *frameLabel;
-
- // WaitForFrame
- long skipCount;
-
- // Sound
- Sound *sound;
-
- struct ActionRecord *next;
-
- ActionRecord() {
- frameLabel = 0;
- url = 0;
- target = 0;
- sound = 0;
- };
-
- ~ActionRecord() {
- if (frameLabel) free(frameLabel);
- if (url) free(url);
- if (target) free(target);
- };
- };
-
- enum FontFlags {
- fontUnicode = 0x20,
- fontShiftJIS = 0x10,
- fontANSI = 0x08,
- fontItalic = 0x04,
- fontBold = 0x02,
- fontWideCodes = 0x01
- };
-
- enum TextFlags {
- isTextControl = 0x80,
-
- textIsLarge = 0x70,
- textHasFont = 0x08,
- textHasColor = 0x04,
- textHasYOffset= 0x02,
- textHasXOffset= 0x01
- };
-
- #ifndef NULL
- #define NULL 0
- #endif
-
- // Tag values that represent actions or data in a Flash script.
- enum
- {
- stagEnd = 0,
- stagShowFrame = 1,
- stagDefineShape = 2,
- stagFreeCharacter = 3,
- stagPlaceObject = 4,
- stagRemoveObject = 5,
- stagDefineBits = 6,
- stagDefineButton = 7,
- stagJPEGTables = 8,
- stagSetBackgroundColor = 9,
- stagDefineFont = 10,
- stagDefineText = 11,
- stagDoAction = 12,
- stagDefineFontInfo = 13,
- stagDefineSound = 14, // Event sound tags.
- stagStartSound = 15,
- stagStopSound = 16,
- stagDefineButtonSound = 17,
- stagSoundStreamHead = 18,
- stagSoundStreamBlock = 19,
- stagDefineBitsLossless = 20, // A bitmap using lossless zlib compression.
- stagDefineBitsJPEG2 = 21, // A bitmap using an internal JPEG compression table.
- stagDefineShape2 = 22,
- stagDefineButtonCxform = 23,
- stagProtect = 24, // This file should not be importable for editing.
-
- // These are the new tags for Flash 3.
- stagPlaceObject2 = 26, // The new style place w/ alpha color transform and name.
- stagRemoveObject2 = 28, // A more compact remove object that omits the character tag (just depth).
- stagDefineShape3 = 32, // A shape V3 includes alpha values.
- stagDefineText2 = 33, // A text V2 includes alpha values.
- stagDefineButton2 = 34, // A button V2 includes color transform, alpha and multiple actions
- stagDefineBitsJPEG3 = 35, // A JPEG bitmap with alpha info.
- stagDefineBitsLossless2 = 36, // A lossless bitmap with alpha info.
- stagDefineSprite = 39, // Define a sequence of tags that describe the behavior of a sprite.
- stagNameCharacter = 40, // Name a character definition, character id and a string, (used for buttons, bitmaps, sprites and sounds).
- stagFrameLabel = 43, // A string label for the current frame.
- stagSoundStreamHead2 = 45, // For lossless streaming sound, should not have needed this...
- stagDefineMorphShape = 46, // A morph shape definition
- stagDefineFont2 = 48,
-
- notEnoughData = 0xffff, // Special code
- };
-
- #ifndef false
- #define false 0
- #endif
- #ifndef true
- #define true 1
- #endif
-
- extern int shape_size,shape_nb,shaperecord_size,shaperecord_nb,style_size,style_nb;
-
- typedef void (*ScanLineFunc)(void *id, long y, long start, long end);
-
- class Bitmap;
- struct FlashMovie;
-
-
- extern "C" {
- #undef GLOBAL
- #include "jpeglib.h"
- };
- extern "C" {
- #undef GLOBAL
- #include "zlib.h"
- };
-
- #include "graphic.h"
- #include "character.h"
- #include "bitmap.h"
- #include "shape.h"
- #include "displaylist.h"
- #include "sound.h"
- #include "button.h"
- #include "font.h"
- #include "text.h"
- #include "adpcm.h"
- #include "program.h"
- #include "sprite.h"
- #include "script.h"
- #include "movie.h"
-
- #endif /* _SWF_H_ */
-